package com.ld.control.business.process.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ld.control.business.process.model.ProcessNodeTmpModel;
import com.ld.control.business.process.model.ProcessTmpModel;
import com.ld.control.business.process.vo.req.ProcessTmpReqVo;
import com.ld.control.business.process.vo.resp.ProcessTmpRespVo;
import com.ld.control.common.vo.GeneratePageListVo;

import java.util.List;

/**
 * <p>
 * 任务流程模板 服务类
 * </p>
 *
 * @author wangfeng
 * @since 2024-04-24
 */
public interface ProcessTmpService extends IService<ProcessTmpModel> {

    /**
     * 流程列表展示
     * @param regionId
     * @param name
     * @param type
     * @return
     */
    IPage<ProcessTmpRespVo> getPageList(Long regionId, String name, Integer type, Integer current, Integer size);

    /**
     * 查询流程配置列表不分页
     * @param regionId
     * @param name
     * @param type
     * @return
     */
    List<ProcessTmpRespVo> getAllList(Long regionId, String name, Integer type);

    /**
     * 查询流程模板详情
     * @param id
     * @return
     */
    ProcessTmpRespVo getById(Long id);

    /**
     * 删除流程模板
     * @param id
     */
    void deleteById(Long id);

    /**
     * 添加流程信息
     * @param reqVo
     */
    void add(ProcessTmpReqVo reqVo);

    /**
     * 修改流程信息
     * @param reqVo
     */
    void update(ProcessTmpReqVo reqVo);

    /**
     * 流程图json数据 g特殊逻辑处理
     * @param allNodeInfo
     * @return
     */
    String coverProcessTmpExt(String allNodeInfo);
}
